#ifndef MATRIX_H
#define MATRIX_H

#include "vectorf.h"
#include <stdio.h>

class Matrix4f
{
    public :

    /**********************************************************/
    /*                  Propriétés                            */
    /**********************************************************/

    float * tab;    //  Tableau qui contiendra les valeurs de la matrice, initialisé en dimx*dimy

    /**********************************************************/
    /*                  Constructeurs                         */
    /**********************************************************/

    Matrix4f();
    Matrix4f(const Matrix4f &);
    Matrix4f(float * aValues);

    /**********************************************************/
    /*                  Méthodes                              */
    /**********************************************************/

    Matrix4f operator*(const Matrix4f &);
    Vectorf operator * (const Vectorf &);
    void operator=(const Matrix4f &);
    float * Array();

    void InitMat(float * arg, int argIndice);

    void FillMatrixTranslation(Vectorf translation);
    void FillMatrixRotationX(float angle);
    void FillMatrixRotationY(float angle);
    void FillMatrixRotationZ(float angle);

    void SetMatrix(float *);

    void Print();
};

#endif // MATRIX_H
